/* ============================================================
   FONTS
   ============================================================ */
@font-face {
  font-family: NotoSansCHI;
  src: url(fonts/NotoSansCJKtc-Regular.otf);
}
@font-face {
  font-family: NotoSansJP;
  src: url(fonts/NotoSansCJKjp-Regular.otf);
}
@font-face {
  font-family: Comfortaa-Bold;
  src: url(fonts/Comfortaa-Bold.ttf);
}
@font-face {
  font-family: Nunito-Regular;
  src: url(fonts/Nunito-Regular.ttf);
}
@font-face {
  font-family: Nunito-Bold;
  src: url(fonts/Nunito-Bold.ttf);
}

/* ============================================================
   GLOBAL RESET
   ============================================================ */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* ============================================================
   BASE
   ============================================================ */
body {
  background-color: black;
  color: white;
  font-family: Nunito-Regular, Arial, NotoSansCHI, NotoSansJP, sans-serif;
  margin: 0;
}
body button { font-family: Nunito-Regular, Arial, NotoSansCHI, NotoSansJP, sans-serif; }
h1, h2, h3  { font-family: Comfortaa-Bold, Arial, NotoSansCHI, NotoSansJP, sans-serif; }
h4, h5, h6  { font-family: Comfortaa-Bold, Arial, NotoSansCHI, NotoSansJP, sans-serif; }
b           { font-family: Nunito-Bold, Arial, NotoSansCHI, NotoSansJP, sans-serif; }

@media screen and (max-width: 350px) {
  h1, h2, h3 { font-size: large; }
  h4, h5, h6 { font-size: small; }
  body        { font-size: small; }
}

hr {
  width: 100%;
  opacity: 30%;
  margin: 30px 0px;
}

img {
  -webkit-user-drag: none;
  -moz-user-select: none;
       user-select: none;
}

.show {
  display: block !important; /* MUST KEEP. Related to popup window function. */
}

a {
  color: inherit;
  text-decoration: none;
}

.linkhover:hover {
  opacity: 80%;
}

.btn {
  background-color: white;
  color: black;
  border-radius: 3px;
  padding: 20px;
  font-family: Comfortaa-Bold, Arial, sans-serif;
}

/* ============================================================
   HEADER
   ============================================================ */
#header {
  display: block;
  background-color: black;
  width: 100%;
  position: -webkit-sticky; /* Safari */
  position: sticky;
  top: 0;
  z-index: 1;
}

.header-block {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 15px 0px;
  text-align: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

#headerlogo {
  display: block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  cursor: pointer;
}

#headerlogo img {
  width: 50px;
}

/* ============================================================
   LANGUAGE MENU
   ============================================================ */
#langBtn {
  cursor: pointer;
  background-color: black;
  color: white;
  /* Fixed size instead of aspect-ratio + padding, so the button
     is always a perfect square regardless of the text inside */
  width: 36px;
  height: 36px;
  padding: 0;
  border: white solid 1px;
  font-family: Nunito-Bold, Arial, sans-serif;
  border-radius: 20px;
  position: fixed;
  top: 10px;
  right: 10px;
  /* line-height matching height centres text vertically in all browsers */
  line-height: 36px;
  text-align: center;
  /* Prevent text from overflowing on very large font scales */
  overflow: hidden;
}
#langBtn:hover {
  opacity: 80%;
}

#langCard {
  display: none;
}

#langCard-close-area {
  position: fixed;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 3;
  background-color: rgba(0, 0, 0, 0.2);
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

#langCardBox {
  display: block;
  background-color: #333333;
  padding: 30px;
  width: 250px;
  border-radius: 20px;
}

.langItem {
  display: block;
  padding: 50px;
  font-family: Nunito-Bold, Arial, sans-serif;
  font-size: x-large;
  text-align: center;
}
.langItem:hover {
  opacity: 80%;
}

/* ============================================================
   HERO / COVER
   ============================================================ */
#hero {
  position: relative;
}

#heroCover {
  display: block;
  /* Prevent inline-block gap below img in some browsers */
  font-size: 0;
  line-height: 0;
}

#heroCover img {
  width: 100vw;
  /* Prevents a 1-2px gap beneath images in some browsers */
  display: block;
  vertical-align: bottom;
}

#onTopProfilePic img {
  position: absolute;
  bottom: 0;
  right: 5vw;
  width: 120px;
  display: block;
}

/* ============================================================
   CONTENT
   ============================================================ */
#container {
  padding: 3vw 10vw;
  max-width: 1000px;
}

#description {
  line-height: 2em;
}

.listItem {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  /* Prevent items from wrapping on very small screens */
  -webkit-box-flex: 0;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.listItemIcon {
  padding: 10px;
  /* Prevent icon from shrinking on small screens */
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.listItemInfo {
  padding: 10px 20px;
  /* align-content has no effect on single-line flex items;
     align-self is the correct property here */
  -webkit-align-self: center;
      -ms-flex-item-align: center;
          align-self: center;
}

.linkItem {
  text-decoration: underline;
  padding: 10px 0px;
  font-family: Nunito-Bold, Arial, sans-serif;
}

#BuyMeACoffee img {
  display: block;
  max-width: 100%;
}

/* ============================================================
   FOOTER
   ============================================================ */
footer {
  width: 100%;
  display: block;
  text-align: center;
  font-size: xx-small;
  padding: 20px 0px;
  background-color: black;
  color: white;
}